Interpreter Implementation of Advice

نویسندگان

  • Immad Naseer
  • Ryan M. Golbeck
  • Peter Selby
  • Gregor Kiczales
چکیده

When late-binding of advice is used for incremental development or configuration, implementing advice weaving using code rewriting external to the VM can cause performance problems during application startup. We present an interpreter-based (non-rewriting) weaver that uses a simple table and cache structure for matching pointcuts against dynamic join points together with a simple mechanism for calling the matched advice. An implementation of our approach in the Jikes RVM shows its feasibility. Internal micro-benchmarks show dynamic join point execution overhead of approximately 28% in the common case where no advice is applicable and that start-up performance is improved over VM-external weavers. The cache and table structures could be used during later (i.e. JIT time) per-method rewrite based weaving to reduce pointcut matching overhead. We conclude that it is worthwhile to develop and evaluate a complete in-VM hybrid implementation, comprising both non-rewriting and rewriting based advice weaving.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Advice for Semifeasible Sets and the Complexity-Theoretic Cost(lessness) of Algebraic Properties

This paper provides a tutorial overview of the advice complexity of the semifeasible sets—informally put, the class of sets having a polynomial-time algorithm that, given as input any two strings of which at least one belongs to the set, will choose one that does belong to the set. No previous familiarity with either the semifeasible sets or advice complexity will assumed, and when we include p...

متن کامل

Interpreter prototypes from language definition style specifications by GREG MICHAELSON

Language definition techniques may be applied to the specification of a wide range of problems. Language implementation techniques may then be used to construct interpreter prototypes. The use of an interpreter-interpreter language for the implementation of interpreter prototypes circumvents some of the disadvantages of contemporary programming languages and software tools.

متن کامل

Implementing a performant scheme interpreter for the web in asm.js

This paper presents the implementation of an efficient interpreter for a Schemelike language using manually written asm.js code. The asm.js specification defines an optimizable subset of JavaScript which has already served well as a compilation target for web applications where performance is critical. However, its usage as a human-writable language that can be integrated into existing projects...

متن کامل

CARMA: Platform Freedom for a Graphical Lisp Application through Armed Bear Common Lisp

CARMA is an advisory system that uses artificiallyintelligent techniques including case-based reasoning to provide advice about the most environmentally and economically effective responses to grasshopper infestations. CARMA’s core AI reasoner was initially written in Common Lisp and integrated with an Allegro Common Lisp for Windows graphical user interface (GUI). CARMA went public in 1996 and...

متن کامل

A Modular XQuery Implementation

CellStore/XQuery is modular a implementation of the XML Query Language interpreter. Primary goal of the implementation is to provide open experimental platform for implementing and testing new query optimization techniques for querying XML data. This paper describes architecture and design features of the implementation as well as possible approaches to extending the interpreter.

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2010